/* 
 * File:   smpi.h
 * Author: Vagner Clementino
 *
 * Created on 8 de Abril de 2012, 10:18
 */


#include "tabela_vagas.h"
#include "Grafo.h"
#include "Lista_Aluno.h"

void smpi (Lista_Aluno alunos, Lista_Universidade universidades, int heuristica,
           FILE* arquivo_saida);

void cria_grafo_casamentos(Grafo** grafo_casamento, Lista_Aluno alunos,
                           tabela_vagas** vagas, int heuristica);

void matricula_alunos(const Grafo* grafo_casamento, 
                         Lista_Universidade* universidades);

float calcula_media (int* vetor_valores, int tam_vetor);

float calcula_mediana(int* vetor_valores, int tam_vetor);

void ordena_vetor_valores(int* vetor_valores, int tam_vetor);

float calcula_vagas_preenchidas(const Lista_Universidade universidades,
                                int tipo_metrica);

float calcula_satisfacao_alunos(const Lista_Universidade universidades,
                                int num_alunos,int tipo_metrica);

float calcula_satisfacao_univer(const Lista_Universidade universidades,
                                int num_alunos, int tipo_metrica);

float calcula_nota_corte (const Lista_Universidade universidades,
                          int tipo_metrica);

void imprime_resultados(const Lista_Universidade universidades,int num_alunos, 
                        int heuristica, FILE* arquivo_saida);

void imprime_vetor_metricas(int* v, int tam_vetor);

void imprime_aprovados(const Lista_Universidade universidades, int heuristica,
                       FILE* arquivo_saida);

void imprime_metricas(const Lista_Universidade universidades, int num_alunos,
                      FILE* arquivo_saida);

